LINDA+ is a method used to identify intra- and inter-cellular interaction networks at a domain resolution, allowing to further study the effects of AS on signalling. It is a tool that integrates prior knowledge (PKN) of directed joint interactions (protein-protein and Domain-Domain intra-cellular interactions from DIGGER (Louadi et al. 2021)) as well as structurally resolved ligand-receptor pairs from various resources (list of resources when ready) with estimated transcription factor enzymatic activities from DoRothEA (Garcia-Alonso et al. 2019) based on sc-RNAseq reads and optionally abundances of secreted extra-cellular proteins from Secretomics data analysis. This is achieved by contextualising large-scale prior knowledge of joint interactions from sequencing and MS/MS data in order to identify a subset of functional interactions between proteins and their domains through the implementation of an Integer Linear Programming (ILP) formulation. The pipeline of the LINDA+ methodology has been depicted in Figure 1.
Figure 1: LINDA+ pipeline
1. From the DoRothEA (Garcia-Alonso et al., 2018) resource, normalized transcription factor (TF) enrichment scores (NESs) can be estimated with viper (Shen et al. 2014; Alvarez et al. 2016). Based on their activities, the most regulated TF’s can then be used as the bottom layer of signalling from where we reverse-engineer the upstream regulatory interactions.
2. Abundances of ligands obtained from LC-MS secretomics. TBD: How to use secretomics data as inputs.
3. A joint network graph from DIGGER (Louadi et al. 2021) that integrates PPIs and DDIs and in which nodes represent protein domains defined by concatenating Entrez and Pfam id. The resource contains database tables for both genomic data, e.g. genes with their corresponding transcript and exon coordinates, and for proteins, e.g. isoforms and their domains. The protein coordinates were converted to genomic coordinates in the coding sequence and both tables are merged to be able to map transcripts with their corresponding exons to the corresponding protein isoforms and Pfam domains.
4. Structurally resolved ligand-receptor pairs from various resources. TBD: What resources to use
Below are provided examples which help the user to better understand the functioning of the LINDA+ R-package and the format of the LINDA+ inputs.
Below are provided the steps of running a small Toy test study which we have depicted in Figure 2. In this Toy case-study we are depicting a system of 3 different cell-types (CellA, CellB and CellC) where each node represents a protein (domains not depicted) while edges represent interactions between nodes. Yellow triangles represent cell-receptors, red squares represent intra-cellular proteins, green triangles represent TF’s, while in blue circles we are depicting ligands in the extra-cellular space. The interactions between nodes in the network is what we have obtained from utilizing large-scale resources such as DIGGER for the intra-cellular PPI and DDI’s (Louadi et al. 2021); DoRothEA (Garcia-Alonso et al., 2018) for the TF-to-ligand interactions which connect the intra-cellular space with the extra-cellular space; and resources such as LIANA+ (Dimitrov et al. 2023) or CellPhoneDB (Efremova et al. 2020) that we use as prior knowledge for the ligand-receptor interactions.
Figure 2: LINDA+ Toy Example
Please not that for simplicity reasons in Figure 2 we are depicting each protein as one node in the network, however LINDA+ models interactions between proteins at a domain resolution.
R-packages needed to for the analysis.
library(LINDAPlus)The list consists of two elements:
background.networks: This should be a named (cell-types) list containing data-frames joint PPI-DDI’s for each cell-type. Each data-frame represents the set of interaction knowledge for each cell-type and it should contain at least 4 columns with the following ID’s: ‘pfam_source’, ‘pfam_target’, ‘gene_source’ and ‘gene_target’. In the case where we have no name for a specific domain or where this is not applicable, please set the corresponding values in the ‘pfam_source’ or ‘pfam_target’ as NA’s.
ligand.receptors: This also should be a named list (‘ligands’ and ‘Receptors’) which contains character vectors where the set of elements that corresponds to Ligands and Receptors have been defined as such.
load(file = system.file("extdata", "toy.background.networks.list.RData", package = "LINDAPlus"))
print(background.networks.list)## $background.networks
## $background.networks$CellA
## pfam_source pfam_target gene_source gene_target
## 2 D2 D14 A1 A4
## 3 D4 D18 A2 A5
## 4 D6 D15 A2 A5
## 5 D10 D21 A3 A6
## 6 D9 D19 A3 A6
## 7 D8 D20 A3 A6
## 9 D12 D47 A4 A7
## 10 D13 D46 A4 A7
## 11 D14 D25 A4 A8
## 12 D13 D23 A4 A8
## 13 D16 D24 A5 A8
## 14 D20 D26 A6 A9
## 15 D20 D32 A6 A10
## 16 D19 D31 A6 A10
## 17 D22 D30 A6 A10
## 18 D23 D36 A8 A11
## 19 D23 D38 A8 A12
## 20 D24 D37 A8 A12
## 21 D28 D40 A9 A12
## 22 D32 D43 A10 A13
## 23 D31 D41 A10 A13
## 24 D30 D42 A10 A13
## 25 D34 D48 A11 A14
## 26 D35 D52 A11 A15
## 27 D34 D54 A11 A15
## 28 D36 D53 A11 A15
## 29 D34 D55 A11 A17
## 30 D38 D51 A12 A14
## 31 D39 D48 A12 A14
## 32 D40 D50 A12 A14
## 33 D37 D54 A12 A15
## 34 D39 D59 A12 A16
## 35 D44 D61 A13 A16
## 36 D41 D60 A13 A16
## 37 D41 D57 A13 A17
## 38 D42 D55 A13 A17
## 39 D43 D56 A13 A17
## 1 <NA> <NA> A14 L1
## 110 <NA> D1 L2 A1|A2
## 210 <NA> D3 L2 A1|A2
## 310 <NA> D5 L2 A1|A2
## 41 <NA> D7 L4 A3
## 111 <NA> D1 L5 A1|A2
##
## $background.networks$CellB
## pfam_source pfam_target gene_source gene_target
## 2 D3 D7 B1 B3
## 3 D2 D8 B1 B3
## 4 D2 D12 B1 B4
## 6 D5 D10 B2 B4
## 7 D6 D13 B2 B4
## 8 D4 D12 B2 B4
## 9 D5 D17 B2 B5
## 10 D6 D15 B2 B5
## 11 D8 D20 B3 B6
## 12 D9 D18 B3 B6
## 13 D7 D19 B3 B6
## 14 D8 D23 B3 B7
## 15 D7 D21 B3 B7
## 16 D9 D22 B3 B7
## 17 D12 D26 B4 B8
## 18 D13 D25 B4 B8
## 19 D11 D27 B4 B8
## 20 D16 D28 B5 B9
## 21 D15 D30 B5 B9
## 22 D14 D29 B5 B9
## 23 D20 D33 B6 B10
## 24 D19 D31 B6 B10
## 25 D23 D37 B7 B11
## 26 D22 D35 B7 B11
## 27 D26 D37 B8 B11
## 28 D25 D38 B8 B11
## 29 D24 D36 B8 B11
## 30 D25 D39 B8 B12
## 31 D30 D35 B9 B11
## 32 D31 D43 B10 B13
## 33 D34 D45 B10 B13
## 34 D32 D48 B10 B14
## 35 D31 D50 B10 B14
## 36 D34 D47 B10 B14
## 37 D37 D50 B11 B14
## 38 D38 D49 B11 B14
## 39 D37 D53 B11 B15
## 40 D38 D51 B11 B15
## 41 D35 D54 B11 B15
## 42 D40 D52 B12 B15
## 43 D41 D54 B12 B15
## 44 D39 D51 B12 B15
## 45 D39 D56 B12 B16
## 46 D40 D55 B12 B16
## 1 <NA> <NA> B13 L1
## 210 <NA> <NA> B16 L2
## 110 <NA> D1 L3 B1
## 211 <NA> D4 L4 B2
## 111 <NA> D1 L5 B1
##
## $background.networks$CellC
## pfam_source pfam_target gene_source gene_target
## 2 D1 D8 C1 C3
## 3 D2 D10 C1 C4
## 4 D1 D12 C1 C4
## 5 D3 D14 C2 C5
## 6 D6 D16 C2 C5
## 7 D4 D15 C2 C5
## 8 D7 D18 C3 C6
## 9 D8 D17 C3 C6
## 10 D8 D22 C3 C7
## 11 D7 D24 C3 C7
## 12 D9 D21 C3 C7
## 13 D11 D21 C4 C7
## 14 D13 D23 C4 C7
## 15 D15 D28 C5 C8
## 16 D16 D25 C5 C8
## 17 D14 D26 C5 C8
## 18 D14 D31 C5 C9
## 19 D16 D30 C5 C9
## 20 D17 D36 C6 C11
## 21 D18 D35 C6 C11
## 22 D22 D34 C7 C10
## 23 D23 D32 C7 C10
## 24 D22 D36 C7 C11
## 25 D24 D35 C7 C11
## 26 D27 D35 C8 C11
## 27 D29 D40 C9 C12
## 28 D31 D38 C9 C12
## 29 D34 D41 C10 C13
## 30 D33 D42 C10 C13
## 31 D32 D44 C10 C13
## 32 D32 D47 C10 C14
## 33 D34 D48 C10 C14
## 34 D36 D40 C11 C12
## 35 D35 D38 C11 C12
## 36 D37 D49 C11 C15
## 37 D36 D50 C11 C15
## 38 D36 D55 C11 C16
## 39 D39 D50 C12 C15
## 40 D40 D49 C12 C15
## 41 D38 D52 C12 C15
## 42 D39 D53 C12 C16
## 43 D40 D54 C12 C16
## 44 D38 D55 C12 C16
## 45 D43 D57 C13 L4
## 46 D44 D56 C13 L4
## 47 D41 D58 C13 L4
## 1 <NA> <NA> C13 L3
## 210 <NA> <NA> C13 L4
## 110 <NA> D3 L1 C1
## 211 <NA> D4 L1 C2
##
##
## $ligands.receptors
## $ligands.receptors$ligands
## [1] "L1" "L2" "L3" "L4"
##
## $ligands.receptors$receptors
## [1] "A1|A2" "A3" "B1" "B2" "C1" "C2"
Please note that receptors that that consist of multi-subunit protein complexes (i.e. 2 or more protein units), should be depicted as separated through ‘|’ symbol (i.e. receptor complex ‘A1|A2’ which consists of proteins A1 and A2).
This information should be provided as a named list (for each cell-type) and which contains data-frames indicating the enrichment scores for each TF at each cell-type. The data-frames should contain at least two columns: ‘tf’ (indicating the TF ID) and the numerical ‘score’ (indicating the enrichment scores for each TF).
load(file = system.file("extdata", "toy.tf.scores.RData", package = "LINDAPlus"))
print(tf.scores)## $CellA
## tf score
## 1 A14 1
## 2 A15 0
## 3 A16 0
## 4 A17 1
##
## $CellB
## tf score
## 1 B13 1
## 2 B14 1
## 3 B15 0
## 4 B16 1
##
## $CellC
## tf score
## 1 C13 1
## 2 C14 0
## 3 C15 1
## 4 C16 0
Additionally users can provide a named (also by cell-type) numerical vector to indicate the number of TF’s to consider as significantly regulated based on their absolute enrichment values. In case that this parameter has not been defined, then by default all the TF’s provided in the data-frames list will be considered as significantly regulated.
load(file = system.file("extdata", "toy.top.tf.RData", package = "LINDAPlus"))
print(top.tf)## CellA CellB CellC
## 2 3 2
In principle, to run LINDA+, users do not necessairly need to provide prior information about receptors or ligand-receptor interactions that appear to be regulated or enriched. LINDA+ can such potentially regulated mechanisms from the provided TF activities alone:
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
solverPath = "~/Downloads/cplex",
top.tf = top.tf)## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight DDI
## 26 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D1
## 27 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D3
## 28 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D5
## 29 Extra-Cellular L3 B1 101 PSEUDODOMAIN=D1
## 30 Extra-Cellular L1 C1 101 PSEUDODOMAIN=D3
## 1 CellA A1 A4 100 D2=D14
## 2 CellA A4 A8 95 D14=D25
## 3 CellA A8 A11 101 D23=D36
## 4 CellA A11 A14 101 D34=D48
## 5 CellA A11 A17 101 D34=D55
## 6 CellA A1|A2 A1 100 D2=D2
## 22 CellA A14 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 31 CellA L2 A1|A2 101 PSEUDODOMAIN=D1
## 32 CellA L2 A1|A2 101 PSEUDODOMAIN=D3
## 33 CellA L2 A1|A2 101 PSEUDODOMAIN=D5
## 44 CellA A2 A5 2 D6=D15
## 45 CellA A5 A8 2 D16=D24
## 46 CellA A1|A2 A2 2 D6=D6
## 55 CellA A4 A8 6 D13=D23
## 7 CellB B1 B3 38 D3=D7
## 8 CellB B1 B4 101 D2=D12
## 9 CellB B3 B6 10 D8=D20
## 10 CellB B4 B8 61 D12=D26
## 11 CellB B6 B10 37 D20=D33
## 12 CellB B8 B12 101 D25=D39
## 13 CellB B10 B13 63 D34=D45
## 14 CellB B10 B14 58 D32=D48
## 15 CellB B12 B16 54 D40=D55
## 23 CellB B13 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 24 CellB B16 L2 101 PSEUDODOMAIN=PSEUDODOMAIN
## 34 CellB L3 B1 101 PSEUDODOMAIN=D1
## 38 CellB B10 B13 39 D31=D43
## 39 CellB B12 B16 48 D39=D56
## 41 CellB B1 B3 64 D2=D8
## 43 CellB B3 B6 87 D7=D19
## 47 CellB B4 B8 37 D11=D27
## 48 CellB B6 B10 65 D19=D31
## 49 CellB B4 B8 5 D13=D25
## 50 CellB B10 B14 17 D31=D50
## 51 CellB B10 B14 28 D34=D47
## 56 CellB B3 B6 6 D9=D18
## 16 CellC C1 C3 67 D1=D8
## 17 CellC C3 C7 50 D8=D22
## 18 CellC C7 C10 25 D23=D32
## 19 CellC C7 C11 87 D22=D36
## 20 CellC C10 C13 13 D33=D42
## 21 CellC C11 C15 3 D36=D50
## 25 CellC C13 L3 101 PSEUDODOMAIN=PSEUDODOMAIN
## 35 CellC L1 C1 101 PSEUDODOMAIN=D3
## 36 CellC C10 C13 82 D34=D41
## 37 CellC C11 C15 99 D37=D49
## 40 CellC C7 C11 15 D24=D35
## 42 CellC C7 C10 77 D22=D34
## 52 CellC C1 C4 20 D2=D10
## 53 CellC C4 C7 35 D11=D21
## 54 CellC C1 C4 16 D1=D12
## 57 CellC C10 C13 8 D32=D44
## 58 CellC C3 C7 9 D7=D24
## 59 CellC C3 C7 10 D9=D21
In Figure 3, is depicted the network solution provided by LINDA+.
Figure 3: LINDA+ Toy Example - Solution 1
Users can provide information about the abundance of ligands in the extra-cellular space as made evident by Secretomics data through a data-frame object. More abundant ligands/extra-cellular molecules are more likely to initiate conformational changes in receptors. The data-frame provided should contain two columns: ‘ligands’ (providing the ligand ID’s) and ‘score’ (providing the score associated to each ligand, i.e. abundance). The higher the score of the ligand, the more likely it will be for a ligand to appear in the solution. In this case, we penalize the inclusion of ligand L3 in the solution (lower score value given).
load(file = system.file("extdata", "toy.ligand.scores.RData", package = "LINDAPlus"))
print(ligand.scores)## ligand score
## 1 L1 1
## 2 L2 1
## 3 L3 0
## 4 L4 1
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
solverPath = "~/Downloads/cplex",
top.tf = top.tf,
ligand.scores = ligand.scores,
lambda1 = 10,
lambda2 = 15)## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight DDI
## 22 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D1
## 23 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D3
## 24 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D5
## 25 Extra-Cellular L4 B2 101 PSEUDODOMAIN=D4
## 26 Extra-Cellular L1 C1 101 PSEUDODOMAIN=D3
## 1 CellA A1 A4 101 D2=D14
## 2 CellA A4 A8 99 D14=D25
## 3 CellA A8 A11 101 D23=D36
## 4 CellA A11 A14 101 D34=D48
## 5 CellA A11 A17 101 D34=D55
## 6 CellA A1|A2 A1 101 D2=D2
## 19 CellA A14 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 27 CellA L2 A1|A2 101 PSEUDODOMAIN=D1
## 28 CellA L2 A1|A2 101 PSEUDODOMAIN=D3
## 29 CellA L2 A1|A2 101 PSEUDODOMAIN=D5
## 46 CellA A4 A8 3 D13=D23
## 7 CellB B2 B4 40 D5=D10
## 8 CellB B4 B8 85 D12=D26
## 9 CellB B8 B11 12 D26=D37
## 10 CellB B8 B12 101 D25=D39
## 11 CellB B11 B14 55 D37=D50
## 12 CellB B12 B16 51 D40=D55
## 20 CellB B16 L2 101 PSEUDODOMAIN=PSEUDODOMAIN
## 30 CellB L4 B2 101 PSEUDODOMAIN=D4
## 32 CellB B11 B14 47 D38=D49
## 33 CellB B12 B16 51 D39=D56
## 38 CellB B2 B4 48 D4=D12
## 39 CellB B4 B8 6 D13=D25
## 40 CellB B8 B11 90 D24=D36
## 47 CellB B2 B4 15 D6=D13
## 48 CellB B4 B8 12 D11=D27
## 13 CellC C1 C3 45 D1=D8
## 14 CellC C3 C7 10 D8=D22
## 15 CellC C7 C10 81 D23=D32
## 16 CellC C7 C11 52 D22=D36
## 17 CellC C10 C13 31 D33=D42
## 18 CellC C11 C15 12 D36=D50
## 21 CellC C13 L4 101 PSEUDODOMAIN=PSEUDODOMAIN
## 31 CellC L1 C1 101 PSEUDODOMAIN=D3
## 34 CellC C3 C7 28 D7=D24
## 35 CellC C10 C13 42 D34=D41
## 36 CellC C11 C15 90 D37=D49
## 37 CellC C7 C11 50 D24=D35
## 41 CellC C10 C13 30 D32=D44
## 42 CellC C1 C4 51 D2=D10
## 43 CellC C4 C7 32 D13=D23
## 44 CellC C7 C10 21 D22=D34
## 45 CellC C4 C7 26 D11=D21
## 49 CellC C1 C4 7 D1=D12
## 50 CellC C3 C7 9 D9=D21
In Figure 4 we depict how giving a priority of ligand L4 in the solution over ligand L3, will lead to the re-wring of the interaction in our multi-cellular system as compared to when not considering for such scores in Figure 3.
Users can tweak the parameters lambda1 and lambda2 to define for how much they wish to prioritize the inclusion of TF’s over the significantly expressed ligands in the extra-cellular space. Here we are using the default set values of lambda1=10 and lambda2=15.
Figure 4: LINDA+ Toy Example - Solution 2
In the case when Secretomics data is not available, users may still have evidence of functional ligand-receptor interactions. This evidence can come from previous ligand-enrichment analyses. In such cases, users can integrate the enrichment scores for ligand-receptor pairs into LINDA. Doing so helps guide the network inference towards the desired ligand-receptor interactions. In this case users can provide a named list (for each cell-type) of data-frames consisting of ligand-receptor enrichment scores normalized between the values of -1 and 1.
load(file = system.file("extdata", "toy.lr.scores.RData", package = "LINDAPlus"))
print(lr.scores)## $CellA
## lr.interaction score
## 2 L4=A3 0.78
##
## $CellB
## lr.interaction score
## 2 L4=B2 0.97
##
## $CellC
## lr.interaction score
## 2 L1=C2 0.87
Here we can see that for example, for CellA we are prioritizing the L4->A3 interaction compared to L2->A1|A2. This is reflected in the re-wiring of the interactions compared to the solution that we obtained in Figure 2 as follows:
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
solverPath = "~/Downloads/cplex",
top.tf = top.tf,
lr.scores = lr.scores,
lambda1 = 10,
lambda3 = 1)## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight DDI
## 30 Extra-Cellular L4 A3 101 PSEUDODOMAIN=D7
## 31 Extra-Cellular L3 B1 101 PSEUDODOMAIN=D1
## 32 Extra-Cellular L4 B2 101 PSEUDODOMAIN=D4
## 33 Extra-Cellular L1 C1 101 PSEUDODOMAIN=D3
## 34 Extra-Cellular L1 C2 101 PSEUDODOMAIN=D4
## 1 CellA A3 A6 63 D8=D20
## 2 CellA A6 A9 101 D20=D26
## 3 CellA A6 A10 61 D19=D31
## 4 CellA A9 A12 101 D28=D40
## 5 CellA A10 A13 58 D30=D42
## 6 CellA A12 A14 52 D40=D50
## 7 CellA A13 A17 44 D43=D56
## 25 CellA A14 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 35 CellA L4 A3 101 PSEUDODOMAIN=D7
## 40 CellA A3 A6 25 D10=D21
## 41 CellA A6 A10 30 D20=D32
## 42 CellA A10 A13 30 D32=D43
## 43 CellA A12 A14 15 D39=D48
## 44 CellA A13 A17 49 D41=D57
## 54 CellA A3 A6 15 D9=D19
## 56 CellA A12 A14 36 D38=D51
## 59 CellA A13 A17 10 D42=D55
## 61 CellA A10 A13 15 D31=D41
## 65 CellA A6 A10 12 D22=D30
## 8 CellB B1 B3 52 D2=D8
## 9 CellB B2 B4 45 D4=D12
## 10 CellB B3 B6 46 D7=D19
## 11 CellB B4 B8 49 D11=D27
## 12 CellB B6 B10 55 D19=D31
## 13 CellB B8 B12 101 D25=D39
## 14 CellB B10 B13 70 D31=D43
## 15 CellB B10 B14 55 D34=D47
## 16 CellB B12 B16 84 D40=D55
## 26 CellB B13 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 27 CellB B16 L2 101 PSEUDODOMAIN=PSEUDODOMAIN
## 36 CellB L3 B1 101 PSEUDODOMAIN=D1
## 37 CellB L4 B2 101 PSEUDODOMAIN=D4
## 45 CellB B1 B3 50 D3=D7
## 46 CellB B2 B4 52 D5=D10
## 47 CellB B3 B6 45 D8=D20
## 48 CellB B4 B8 47 D12=D26
## 49 CellB B6 B10 47 D20=D33
## 50 CellB B10 B13 32 D34=D45
## 51 CellB B10 B14 43 D32=D48
## 55 CellB B12 B16 18 D39=D56
## 57 CellB B3 B6 12 D9=D18
## 58 CellB B4 B8 7 D13=D25
## 60 CellB B2 B4 6 D6=D13
## 62 CellB B10 B14 5 D31=D50
## 17 CellC C1 C3 99 D1=D8
## 18 CellC C2 C5 100 D3=D14
## 19 CellC C3 C7 99 D8=D22
## 20 CellC C5 C8 101 D15=D28
## 21 CellC C7 C10 54 D23=D32
## 22 CellC C8 C11 101 D27=D35
## 23 CellC C10 C13 58 D33=D42
## 24 CellC C11 C15 101 D37=D49
## 28 CellC C13 L4 101 PSEUDODOMAIN=PSEUDODOMAIN
## 29 CellC C13 L3 101 PSEUDODOMAIN=PSEUDODOMAIN
## 38 CellC L1 C1 101 PSEUDODOMAIN=D3
## 39 CellC L1 C2 101 PSEUDODOMAIN=D4
## 52 CellC C7 C10 48 D22=D34
## 53 CellC C10 C13 44 D34=D41
## 63 CellC C1 C4 3 D1=D12
## 64 CellC C4 C7 3 D11=D21
## 66 CellC C2 C5 2 D6=D16
We also observe that for CellB while indeed we have provided a higher enrichment score to the L4->B2 interaction compared L3->B1, we still see that L4->B2 is not present in the final solution. This is because we are assigning a relatively low weight (lambda3=1) to the inclusion of ligand-receptor interactions based on enrichment analyses compared to the inclusion of TF’s (lambda1=10). By giving larger value to lambda3, we can make it possible to retreive the L4->B2 interaction.
Users can additionally provide scores (between 0 and 1) representing probability values about how likely would be for two cell-types to directly communicate with each-other (i.e. as made evident through spatial transcriptomics). The higher the score given, the more is likely for a cell-type pair to be directly communicating with each other, and when such score is set to 0, then special constraints will make it so these two cell-types would not be able to directly communicate with each-other. Let’s see how such scores can be provided:
load(file = system.file("extdata", "toy.ccc.scores.RData", package = "LINDAPlus"))
print(ccc.scores)## ccc score
## 1 CellA=CellB 0.5
## 2 CellA=CellC 0.0
## 3 CellB=CellC 0.5
From the example given, we can see that we have set that the probability of communicating between CellA and CellB is set to 0. Figure 6 depicts how providing such scores affects the network solution:
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
solverPath = "~/Downloads/cplex",
top.tf = top.tf,
ccc.scores = ccc.scores,
lambda1 = 10,
lambda3 = 1)## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight DDI
## 27 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D1
## 28 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D3
## 29 Extra-Cellular L2 A1|A2 101 PSEUDODOMAIN=D5
## 30 Extra-Cellular L3 B1 101 PSEUDODOMAIN=D1
## 31 Extra-Cellular L4 B2 101 PSEUDODOMAIN=D4
## 32 Extra-Cellular L1 C1 101 PSEUDODOMAIN=D3
## 33 Extra-Cellular L1 C2 101 PSEUDODOMAIN=D4
## 1 CellA A1 A4 52 D2=D14
## 2 CellA A4 A8 19 D14=D25
## 3 CellA A8 A11 101 D23=D36
## 4 CellA A11 A17 101 D34=D55
## 5 CellA A1|A2 A1 52 D2=D2
## 34 CellA L2 A1|A2 101 PSEUDODOMAIN=D1
## 35 CellA L2 A1|A2 101 PSEUDODOMAIN=D3
## 36 CellA L2 A1|A2 101 PSEUDODOMAIN=D5
## 37 CellA L5 A1|A2 101 PSEUDODOMAIN=D1
## 43 CellA A2 A5 24 D4=D18
## 44 CellA A5 A8 50 D16=D24
## 45 CellA A1|A2 A2 24 D4=D4
## 54 CellA A2 A5 27 D6=D15
## 55 CellA A4 A8 34 D13=D23
## 57 CellA A1|A2 A2 27 D6=D6
## 6 CellB B1 B3 40 D2=D8
## 7 CellB B2 B4 50 D5=D10
## 8 CellB B3 B6 20 D9=D18
## 9 CellB B4 B8 101 D12=D26
## 10 CellB B6 B10 11 D19=D31
## 11 CellB B8 B12 101 D25=D39
## 12 CellB B10 B13 18 D34=D45
## 13 CellB B10 B14 82 D32=D48
## 14 CellB B12 B16 101 D39=D56
## 23 CellB B13 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 24 CellB B16 L2 101 PSEUDODOMAIN=PSEUDODOMAIN
## 38 CellB L3 B1 101 PSEUDODOMAIN=D1
## 39 CellB L4 B2 101 PSEUDODOMAIN=D4
## 40 CellB L5 B1 101 PSEUDODOMAIN=D1
## 46 CellB B1 B3 62 D3=D7
## 47 CellB B3 B6 42 D8=D20
## 48 CellB B6 B10 91 D20=D33
## 49 CellB B10 B13 84 D31=D43
## 56 CellB B2 B4 26 D6=D13
## 58 CellB B2 B4 27 D4=D12
## 59 CellB B3 B6 41 D7=D19
## 60 CellB B10 B14 12 D31=D50
## 61 CellB B10 B14 9 D34=D47
## 15 CellC C1 C3 86 D1=D8
## 16 CellC C2 C5 93 D3=D14
## 17 CellC C3 C7 85 D8=D22
## 18 CellC C5 C8 100 D15=D28
## 19 CellC C7 C10 2 D23=D32
## 20 CellC C8 C11 100 D27=D35
## 21 CellC C10 C13 2 D33=D42
## 22 CellC C11 C15 100 D37=D49
## 25 CellC C13 L4 101 PSEUDODOMAIN=PSEUDODOMAIN
## 26 CellC C13 L3 101 PSEUDODOMAIN=PSEUDODOMAIN
## 41 CellC L1 C1 101 PSEUDODOMAIN=D3
## 42 CellC L1 C2 101 PSEUDODOMAIN=D4
## 50 CellC C1 C4 9 D2=D10
## 51 CellC C4 C7 16 D11=D21
## 52 CellC C7 C10 100 D22=D34
## 53 CellC C10 C13 100 D34=D41
## 62 CellC C1 C4 8 D1=D12
## 63 CellC C2 C5 7 D6=D16
## 64 CellC C2 C5 3 D4=D15
## 65 CellC C3 C7 2 D7=D24
## 66 CellC C5 C9 2 D16=D30
## 67 CellC C9 C12 2 D31=D38
## 68 CellC C12 C15 2 D39=D50
As we can notice, all the extra-cellular interactions which make possible the communication between CellA and CellC are not present in the solution.
Given that LINDA+ simultaneously infers not only protein-protein interactions but also domain interactions, it enables us to examine how RNA modification mechanisms, like alternative splicing, might influence the presence or absence of domains within the structure of interacting proteins. This, in turn, allows us to assess the effects of such modifications on the interactions between proteins.
This is achieved by giving to the network inference function an as.input data-frame object which lists domain ID’s of certain proteins for any cell-type and how they have been affected based on, for example, evidence from differential splicing analyses. These effects can include exclusion (when we know that a domain of a protein has been skipped) or inclusion (when we try to understand how the inclusion of a domain in the network solution might affect the protein interactions).
In the toy example below it can be demonstrated how the as.input object should be defined.
load(file = system.file("extdata", "toy.as.input.RData", package = "LINDAPlus"))
print(as.input)## cell_type proteinID domainID effect
## 1 CellA A8 D23 exclusion
## 2 CellA A9 D26 inclusion
## 3 CellA A9 D28 inclusion
Such an object, can then be given as an input to the main runLINDAPlus() function in order to infer splice-dependent mechanisms of protein interactions.
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
as.input = as.input,
solverPath = "~/Downloads/cplex",
top.tf = top.tf)## [1] "3 domains out of 3 total given in the 'as.input' have been found in the background network."
## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight DDI
## 28 Extra-Cellular L4 A3 101 PSEUDODOMAIN=D7
## 29 Extra-Cellular L3 B1 101 PSEUDODOMAIN=D1
## 30 Extra-Cellular L4 B2 99 PSEUDODOMAIN=D4
## 31 Extra-Cellular L1 C1 101 PSEUDODOMAIN=D3
## 1 CellA A3 A6 41 D10=D21
## 2 CellA A6 A9 101 D20=D26
## 3 CellA A6 A10 67 D20=D32
## 4 CellA A9 A12 101 D28=D40
## 5 CellA A10 A13 2 D32=D43
## 6 CellA A12 A14 77 D40=D50
## 7 CellA A13 A17 15 D41=D57
## 23 CellA A14 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 32 CellA L4 A3 101 PSEUDODOMAIN=D7
## 36 CellA A3 A6 17 D8=D20
## 37 CellA A6 A10 33 D19=D31
## 38 CellA A10 A13 60 D30=D42
## 39 CellA A13 A17 29 D43=D56
## 45 CellA A12 A14 22 D38=D51
## 46 CellA A13 A17 59 D42=D55
## 47 CellA A3 A6 45 D9=D19
## 57 CellA A12 A14 4 D39=D48
## 58 CellA A10 A13 41 D31=D41
## 65 CellA A6 A10 3 D22=D30
## 8 CellB B1 B3 54 D3=D7
## 9 CellB B2 B4 13 D5=D10
## 10 CellB B3 B6 32 D8=D20
## 11 CellB B4 B8 75 D12=D26
## 12 CellB B6 B10 45 D20=D33
## 13 CellB B8 B12 101 D25=D39
## 14 CellB B10 B13 72 D34=D45
## 15 CellB B10 B14 63 D32=D48
## 16 CellB B12 B16 90 D40=D55
## 24 CellB B13 L1 101 PSEUDODOMAIN=PSEUDODOMAIN
## 25 CellB B16 L2 101 PSEUDODOMAIN=PSEUDODOMAIN
## 33 CellB L3 B1 101 PSEUDODOMAIN=D1
## 34 CellB L4 B2 99 PSEUDODOMAIN=D4
## 43 CellB B1 B3 48 D2=D8
## 44 CellB B2 B4 69 D4=D12
## 48 CellB B3 B6 27 D9=D18
## 49 CellB B3 B6 44 D7=D19
## 50 CellB B4 B8 19 D13=D25
## 51 CellB B6 B10 57 D19=D31
## 52 CellB B1 B4 3 D2=D12
## 53 CellB B10 B13 30 D31=D43
## 54 CellB B10 B14 31 D31=D50
## 55 CellB B10 B14 9 D34=D47
## 56 CellB B2 B4 19 D6=D13
## 59 CellB B4 B8 9 D11=D27
## 62 CellB B12 B16 12 D39=D56
## 17 CellC C1 C3 90 D1=D8
## 18 CellC C3 C7 76 D8=D22
## 19 CellC C7 C10 18 D23=D32
## 20 CellC C7 C11 85 D22=D36
## 21 CellC C10 C13 8 D33=D42
## 22 CellC C11 C15 4 D36=D50
## 26 CellC C13 L4 101 PSEUDODOMAIN=PSEUDODOMAIN
## 27 CellC C13 L3 101 PSEUDODOMAIN=PSEUDODOMAIN
## 35 CellC L1 C1 101 PSEUDODOMAIN=D3
## 40 CellC C7 C10 84 D22=D34
## 41 CellC C10 C13 82 D34=D41
## 42 CellC C11 C15 98 D37=D49
## 60 CellC C7 C11 17 D24=D35
## 61 CellC C10 C13 13 D32=D44
## 63 CellC C1 C4 10 D2=D10
## 64 CellC C4 C7 6 D11=D21
## 66 CellC C3 C7 14 D7=D24
## 67 CellC C1 C4 3 D1=D12
## 68 CellC C4 C7 7 D13=D23
## 69 CellC C3 C7 2 D9=D21
In the figure below we can see how the addition of information about included or excluded protein domains affects the re-wiring of the protein interactions.
Figure 7: LINDA+ Toy Example - Solution 5
Such feature which allows the users to introduce into the multicellular system effects from i.e. distant ligands or ligands which they themselves experimentally introduce into the system. In the case where the user wisshes to add perturbation effects from a specific ligand which does not come from any of the cell-types, LINDA+ automatically introduces into the system an auxilliary PseudoCell which consists of a single PSEUDOLIGAND, PSEUDORECEPTOR, PSEUDOPROTEIN and PSEUDOTF where the latter is then connected to the ligands that we are introducing in the system. In this case LINDA+ will then infer the interaction mechanisms happening within such PseudoCell and which lead to the secretion of the ligands which the users are are introducing remotely.
Let’s see how this example works by first loading the background network as well as the TF score objects with the effects from the PseudoCell
load(file = system.file("extdata", "toy.background.networks.list.with.perturbations.RData", package = "LINDAPlus"))
print(background.networks.list$background.networks$PseudoCell)## pfam_source pfam_target gene_source gene_target
## 1 <NA> PSEUDODOMAIN PSEUDOLIGAND PSEUDORECEPTOR
## 2 PSEUDODOMAIN PSEUDODOMAIN PSEUDORECEPTOR PSEUDOPROTEIN
## 3 PSEUDODOMAIN PSEUDODOMAIN PSEUDOPROTEIN PSEUDOTF
## 4 <NA> <NA> PSEUDOTF L5
load(file = system.file("extdata", "toy.tf.scores.with.perturbations.RData", package = "LINDAPlus"))
print(tf.scores$PseudoCell)## tf score
## 1 PSEUDOTF 1
load(file = system.file("extdata", "toy.top.tf.with.perturbations.RData", package = "LINDAPlus"))
print(top.tf)## CellA CellB CellC PseudoCell
## 2 3 2 1
As we can notice, in igands.receptors$perturbation.ligands we have defined the names of the ligands which we consider as perturbation/distant (meaning that it has not been secreted by any of the cell-types that we are considering).
We can now run the network inference analysis as usual:
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
solverPath = "~/Downloads/cplex",
top.tf = top.tf)## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight
## 30 Extra-Cellular L5 A1|A2 84
## 31 Extra-Cellular L5 B1 101
## 32 Extra-Cellular L1 C1 101
## 33 Extra-Cellular PSEUDOLIGAND PSEUDORECEPTOR 101
## 39 Extra-Cellular L2 A1|A2 34
## 40 Extra-Cellular L2 A1|A2 34
## 44 Extra-Cellular L2 A1|A2 15
## 50 Extra-Cellular L4 B2 84
## 1 CellA A1 A4 76
## 2 CellA A4 A8 28
## 3 CellA A8 A11 101
## 4 CellA A11 A14 101
## 5 CellA A11 A17 101
## 6 CellA A1|A2 A1 76
## 22 CellA A14 L1 101
## 34 CellA L5 A1|A2 84
## 41 CellA L2 A1|A2 34
## 42 CellA L2 A1|A2 34
## 45 CellA L2 A1|A2 15
## 52 CellA A4 A8 49
## 68 CellA A2 A5 26
## 69 CellA A5 A8 26
## 70 CellA A1|A2 A2 14
## 72 CellA A1|A2 A2 13
## 7 CellB B1 B3 47
## 8 CellB B1 B4 18
## 9 CellB B3 B6 21
## 10 CellB B4 B8 73
## 11 CellB B6 B10 56
## 12 CellB B8 B12 101
## 13 CellB B10 B13 38
## 14 CellB B10 B14 34
## 15 CellB B12 B16 59
## 23 CellB B13 L1 101
## 24 CellB B16 L2 101
## 35 CellB L5 B1 101
## 37 CellB B12 B16 43
## 43 CellB B10 B13 64
## 47 CellB B1 B3 55
## 48 CellB B2 B4 16
## 49 CellB B3 B6 52
## 51 CellB L4 B2 84
## 53 CellB B2 B4 57
## 54 CellB B3 B6 30
## 55 CellB B6 B10 46
## 56 CellB B10 B14 32
## 57 CellB B10 B14 37
## 60 CellB B2 B4 13
## 61 CellB B4 B8 22
## 71 CellB B4 B8 8
## 16 CellC C1 C3 81
## 17 CellC C3 C7 50
## 18 CellC C7 C10 65
## 19 CellC C7 C11 95
## 20 CellC C10 C13 57
## 21 CellC C11 C15 96
## 25 CellC C13 L4 98
## 36 CellC L1 C1 101
## 38 CellC C10 C13 39
## 46 CellC C13 L3 4
## 58 CellC C1 C4 10
## 59 CellC C4 C7 17
## 62 CellC C1 C4 12
## 63 CellC C3 C7 16
## 64 CellC C3 C7 17
## 65 CellC C7 C10 37
## 66 CellC C10 C13 7
## 67 CellC C7 C11 7
## 73 CellC C4 C7 5
## 74 CellC C11 C15 6
## 26 PseudoCell PSEUDOLIGAND PSEUDORECEPTOR 101
## 27 PseudoCell PSEUDORECEPTOR PSEUDOPROTEIN 101
## 28 PseudoCell PSEUDOPROTEIN PSEUDOTF 101
## 29 PseudoCell PSEUDOTF L5 101
## DDI
## 30 PSEUDODOMAIN=D1
## 31 PSEUDODOMAIN=D1
## 32 PSEUDODOMAIN=D3
## 33 PSEUDODOMAIN=PSEUDODOMAIN
## 39 PSEUDODOMAIN=D3
## 40 PSEUDODOMAIN=D5
## 44 PSEUDODOMAIN=D1
## 50 PSEUDODOMAIN=D4
## 1 D2=D14
## 2 D14=D25
## 3 D23=D36
## 4 D34=D48
## 5 D34=D55
## 6 D2=D2
## 22 PSEUDODOMAIN=PSEUDODOMAIN
## 34 PSEUDODOMAIN=D1
## 41 PSEUDODOMAIN=D3
## 42 PSEUDODOMAIN=D5
## 45 PSEUDODOMAIN=D1
## 52 D13=D23
## 68 D4=D18
## 69 D16=D24
## 70 D6=D6
## 72 D4=D4
## 7 D3=D7
## 8 D2=D12
## 9 D8=D20
## 10 D12=D26
## 11 D20=D33
## 12 D25=D39
## 13 D34=D45
## 14 D32=D48
## 15 D40=D55
## 23 PSEUDODOMAIN=PSEUDODOMAIN
## 24 PSEUDODOMAIN=PSEUDODOMAIN
## 35 PSEUDODOMAIN=D1
## 37 D39=D56
## 43 D31=D43
## 47 D2=D8
## 48 D5=D10
## 49 D9=D18
## 51 PSEUDODOMAIN=D4
## 53 D4=D12
## 54 D7=D19
## 55 D19=D31
## 56 D31=D50
## 57 D34=D47
## 60 D6=D13
## 61 D13=D25
## 71 D11=D27
## 16 D1=D8
## 17 D8=D22
## 18 D22=D34
## 19 D22=D36
## 20 D32=D44
## 21 D37=D49
## 25 PSEUDODOMAIN=PSEUDODOMAIN
## 36 PSEUDODOMAIN=D3
## 38 D34=D41
## 46 PSEUDODOMAIN=PSEUDODOMAIN
## 58 D2=D10
## 59 D11=D21
## 62 D1=D12
## 63 D7=D24
## 64 D9=D21
## 65 D23=D32
## 66 D33=D42
## 67 D24=D35
## 73 D13=D23
## 74 D36=D50
## 26 PSEUDODOMAIN=PSEUDODOMAIN
## 27 PSEUDODOMAIN=PSEUDODOMAIN
## 28 PSEUDODOMAIN=PSEUDODOMAIN
## 29 PSEUDODOMAIN=PSEUDODOMAIN
In the figure below we can see the inferred network solution when the remote ligand L5 has been introduced into our three-cellular system.
The networks can of course also be further refined by introduceng additional information such as the
ligand.scores:
res <- runLINDAPlus(background.networks.list = background.networks.list,
tf.scores = tf.scores,
solverPath = "~/Downloads/cplex",
top.tf = top.tf,
ligand.scores = ligand.scores)## [1] "Writing the objective function and constraints. This might take a bit of time.."
print(res$combined_solutions)## Space Gene_Source Gene_Target Weight
## 30 Extra-Cellular L5 A1|A2 94
## 31 Extra-Cellular L5 B1 101
## 32 Extra-Cellular L4 B2 79
## 33 Extra-Cellular L1 C1 101
## 34 Extra-Cellular PSEUDOLIGAND PSEUDORECEPTOR 101
## 42 Extra-Cellular L2 A1|A2 18
## 43 Extra-Cellular L2 A1|A2 18
## 49 Extra-Cellular L2 A1|A2 7
## 1 CellA A1 A4 97
## 2 CellA A4 A8 93
## 3 CellA A8 A11 101
## 4 CellA A11 A14 101
## 5 CellA A11 A17 101
## 6 CellA A1|A2 A1 97
## 22 CellA A14 L1 101
## 35 CellA L5 A1|A2 94
## 44 CellA L2 A1|A2 18
## 45 CellA L2 A1|A2 18
## 50 CellA L2 A1|A2 7
## 51 CellA A4 A8 5
## 64 CellA A2 A5 5
## 65 CellA A5 A8 5
## 66 CellA A1|A2 A2 5
## 7 CellB B1 B3 22
## 8 CellB B2 B4 19
## 9 CellB B3 B6 39
## 10 CellB B4 B8 43
## 11 CellB B6 B10 53
## 12 CellB B8 B12 101
## 13 CellB B10 B13 77
## 14 CellB B10 B14 42
## 15 CellB B12 B16 64
## 23 CellB B13 L1 101
## 24 CellB B16 L2 101
## 36 CellB L4 B2 79
## 37 CellB L5 B1 101
## 39 CellB B10 B13 25
## 41 CellB B12 B16 38
## 52 CellB B1 B3 80
## 53 CellB B2 B4 8
## 54 CellB B1 B4 23
## 55 CellB B3 B6 55
## 56 CellB B2 B4 54
## 57 CellB B3 B6 9
## 58 CellB B4 B8 49
## 59 CellB B4 B8 11
## 60 CellB B6 B10 49
## 61 CellB B10 B14 41
## 62 CellB B10 B14 20
## 16 CellC C1 C3 52
## 17 CellC C3 C7 52
## 18 CellC C7 C10 77
## 19 CellC C7 C11 78
## 20 CellC C10 C13 74
## 21 CellC C11 C15 94
## 25 CellC C13 L4 101
## 38 CellC L1 C1 101
## 40 CellC C10 C13 21
## 46 CellC C10 C13 8
## 47 CellC C1 C4 25
## 48 CellC C4 C7 42
## 63 CellC C1 C4 26
## 67 CellC C7 C10 25
## 68 CellC C7 C11 24
## 69 CellC C4 C7 9
## 70 CellC C11 C15 8
## 26 PseudoCell PSEUDOLIGAND PSEUDORECEPTOR 101
## 27 PseudoCell PSEUDORECEPTOR PSEUDOPROTEIN 101
## 28 PseudoCell PSEUDOPROTEIN PSEUDOTF 101
## 29 PseudoCell PSEUDOTF L5 101
## DDI
## 30 PSEUDODOMAIN=D1
## 31 PSEUDODOMAIN=D1
## 32 PSEUDODOMAIN=D4
## 33 PSEUDODOMAIN=D3
## 34 PSEUDODOMAIN=PSEUDODOMAIN
## 42 PSEUDODOMAIN=D3
## 43 PSEUDODOMAIN=D5
## 49 PSEUDODOMAIN=D1
## 1 D2=D14
## 2 D14=D25
## 3 D23=D36
## 4 D34=D48
## 5 D34=D55
## 6 D2=D2
## 22 PSEUDODOMAIN=PSEUDODOMAIN
## 35 PSEUDODOMAIN=D1
## 44 PSEUDODOMAIN=D3
## 45 PSEUDODOMAIN=D5
## 50 PSEUDODOMAIN=D1
## 51 D13=D23
## 64 D6=D15
## 65 D16=D24
## 66 D4=D4
## 7 D3=D7
## 8 D5=D10
## 9 D8=D20
## 10 D12=D26
## 11 D20=D33
## 12 D25=D39
## 13 D34=D45
## 14 D32=D48
## 15 D40=D55
## 23 PSEUDODOMAIN=PSEUDODOMAIN
## 24 PSEUDODOMAIN=PSEUDODOMAIN
## 36 PSEUDODOMAIN=D4
## 37 PSEUDODOMAIN=D1
## 39 D31=D43
## 41 D39=D56
## 52 D2=D8
## 53 D6=D13
## 54 D2=D12
## 55 D9=D18
## 56 D4=D12
## 57 D7=D19
## 58 D11=D27
## 59 D13=D25
## 60 D19=D31
## 61 D34=D47
## 62 D31=D50
## 16 D1=D8
## 17 D8=D22
## 18 D22=D34
## 19 D22=D36
## 20 D32=D44
## 21 D37=D49
## 25 PSEUDODOMAIN=PSEUDODOMAIN
## 38 PSEUDODOMAIN=D3
## 40 D34=D41
## 46 D33=D42
## 47 D2=D10
## 48 D11=D21
## 63 D1=D12
## 67 D23=D32
## 68 D24=D35
## 69 D13=D23
## 70 D36=D50
## 26 PSEUDODOMAIN=PSEUDODOMAIN
## 27 PSEUDODOMAIN=PSEUDODOMAIN
## 28 PSEUDODOMAIN=PSEUDODOMAIN
## 29 PSEUDODOMAIN=PSEUDODOMAIN
Figure 9 depticts how the additional information on the ligand.scores further refines the network.
Figure 9: LINDA+ Toy Example - Solution 7
Users can additionally check for the type/attributes of each node component in the generated networks. This would help for further visualization of the networks through Cytoscape or through the LINDAvis R-shiny App (under development).
print(res$node_attributes)## node attribute
## 1 A1 Protein
## 2 A4 Protein
## 3 A8 Protein
## 4 A11 Protein
## 5 A1|A2 Receptor
## 6 B1 Receptor
## 7 B2 Receptor
## 8 B3 Protein
## 9 B4 Protein
## 10 B6 Protein
## 11 B8 Protein
## 12 B10 Protein
## 13 B12 Protein
## 14 C1 Receptor
## 15 C3 Protein
## 16 C7 Protein
## 17 C10 Protein
## 18 C11 Protein
## 19 A14 TF
## 20 B13 TF
## 21 B16 TF
## 22 C13 TF
## 23 PSEUDOLIGAND Ligand
## 24 PSEUDORECEPTOR Receptor
## 25 PSEUDOPROTEIN Protein
## 26 PSEUDOTF TF
## 27 L5 Ligand
## 28 L4 Ligand
## 29 L1 Ligand
## 30 L2 Ligand
## 31 C4 Protein
## 32 A2 Protein
## 33 A5 Protein
## 34 A17 TF
## 35 B14 TF
## 36 C15 TF
## 37 A1_D2 Domain
## 38 A4_D14 Domain
## 39 A8_D25 Domain
## 40 A8_D23 Domain
## 41 A11_D36 Domain
## 42 A11_D34 Domain
## 43 A14_D48 Domain
## 44 A17_D55 Domain
## 45 A1|A2_D2 Domain
## 46 B1_D3 Domain
## 47 B3_D7 Domain
## 48 B2_D5 Domain
## 49 B4_D10 Domain
## 50 B3_D8 Domain
## 51 B6_D20 Domain
## 52 B4_D12 Domain
## 53 B8_D26 Domain
## 54 B10_D33 Domain
## 55 B8_D25 Domain
## 56 B12_D39 Domain
## 57 B10_D34 Domain
## 58 B13_D45 Domain
## 59 B10_D32 Domain
## 60 B14_D48 Domain
## 61 B12_D40 Domain
## 62 B16_D55 Domain
## 63 C1_D1 Domain
## 64 C3_D8 Domain
## 65 C7_D22 Domain
## 66 C10_D34 Domain
## 67 C11_D36 Domain
## 68 C10_D32 Domain
## 69 C13_D44 Domain
## 70 C11_D37 Domain
## 71 C15_D49 Domain
## 72 A14_PSEUDODOMAIN Domain
## 73 L1_PSEUDODOMAIN Domain
## 74 B13_PSEUDODOMAIN Domain
## 75 B16_PSEUDODOMAIN Domain
## 76 L2_PSEUDODOMAIN Domain
## 77 C13_PSEUDODOMAIN Domain
## 78 L4_PSEUDODOMAIN Domain
## 79 PSEUDOLIGAND_PSEUDODOMAIN Domain
## 80 PSEUDORECEPTOR_PSEUDODOMAIN Domain
## 81 PSEUDOPROTEIN_PSEUDODOMAIN Domain
## 82 PSEUDOTF_PSEUDODOMAIN Domain
## 83 L5_PSEUDODOMAIN Domain
## 84 A1|A2_D1 Domain
## 85 B1_D1 Domain
## 86 B2_D4 Domain
## 87 C1_D3 Domain
## 88 B10_D31 Domain
## 89 B13_D43 Domain
## 90 C13_D41 Domain
## 91 B16_D56 Domain
## 92 A1|A2_D3 Domain
## 93 A1|A2_D5 Domain
## 94 C10_D33 Domain
## 95 C13_D42 Domain
## 96 C1_D2 Domain
## 97 C4_D10 Domain
## 98 C4_D11 Domain
## 99 C7_D21 Domain
## 100 A4_D13 Domain
## 101 B1_D2 Domain
## 102 B2_D6 Domain
## 103 B4_D13 Domain
## 104 B3_D9 Domain
## 105 B6_D18 Domain
## 106 B6_D19 Domain
## 107 B4_D11 Domain
## 108 B8_D27 Domain
## 109 B14_D47 Domain
## 110 B14_D50 Domain
## 111 C4_D12 Domain
## 112 A2_D6 Domain
## 113 A5_D15 Domain
## 114 A5_D16 Domain
## 115 A8_D24 Domain
## 116 A1|A2_D4 Domain
## 117 A2_D4 Domain
## 118 C7_D23 Domain
## 119 C7_D24 Domain
## 120 C11_D35 Domain
## 121 C4_D13 Domain
## 122 C15_D50 Domain